package com.bsj.power.common.def.entity.ai;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

/**
 * @author yinhao
 * @version 1.0
 * @description AI报警附件
 * @date 2024/6/26
 */
@Data
@NoArgsConstructor
@TableName(value = "tab_ai_annex")
public class AiAlarm {

    /**
     * AI报警附件
     */
    @TableId(value = "ai_id" ,type = IdType.AUTO)
    private Long aiId;

    private Long did;

    /**
     * 报警名称
     */
    @TableField(value = "alarm_name")
    private String alarmName;
    /**
     * 报警区域
     */
    @TableField(value = "alarm_area")
    private String alarmArea;
    /**
     * 附件类型
     * 2视频
     */
    @TableField(value = "ai_type")
    private String aiType;
    /**
     * 附件地址
     */
    @TableField(value = "media_url")
    private String mediaUrl;
    /**
     * 附件多媒体类型 1:图片 2:视频
     */
    @TableField(value = "media_type")
    private Integer mediaType;
    /**
     * 时间
     */
    @TableField(value = "create_time")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /**
     * 结束时间
     */
    @TableField(exist = false)
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;

    /**
     * 重要程度
     */
    @TableField(value = "level")
    private String level;

    /**
     * 设备名称
     */
    @TableField(exist = false)
    private String nickName;

    /**
     * 多媒体文件路径
     */
    @TableField(exist = false)
    private String filePath;

    /**
     * 报警类型 1进围栏报警 2出围栏报警 3异常停留报警 4设备异常离线报警
     */
    @TableField(exist = false)
    private Integer alarmType;

    /**
     * 设备id
     */
    private String deviceId;

    /**
     * 报警级别
     */
    @TableField(exist = false)
    private Integer alarmLevel;

    /**
     * 报警级别名称
     */
    @TableField(exist = false)
    private String alarmLevelName;

    /**
     * 报警处理状态 1未处理 2已处理
     */
    private Integer handleState;

    /**
     * 处理方式 1语音通报提示 2人工现场处理 3其他
     */
    private Integer handleWay;

    /**
     * 报警处理时间
     */
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date alarmHandleTime;

    /**
     * 事件描述
     */
    private String eventDescription;

    /**
     * 响应措施
     */
    private String responseMeasures;

    /**
     * 备注
     */
    private String remark;


}
